package com.ripservice.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.Instant;
import java.util.List;

/**
 * 路由表数据传输对象
 * 用于在网络中传输路由表信息
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RoutingTableDto {
    /**
     * 路由器标识符
     */
    private String routerId;
    
    /**
     * 路由条目列表
     */
    private List<RouteDto> entries;

    /**
     * 路由条目数据传输对象
     * 表示路由表中的单个路由条目
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class RouteDto {
        /**
         * 目标网络地址
         */
        private String destination;
        
        /**
         * 跳数度量值
         */
        private int metric;
        
        /**
         * 下一跳路由器地址
         */
        private String nextHop;
        
        /**
         * 路由条目最后更新时间
         */
        private Instant lastUpdated;
    }
}